home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / toolbar / tooltips.bas < prev    next >
BASIC Source File  |  1995-05-09  |  3KB  |  72 lines

  1. Option Explicit
  2.  
  3. Global Const SW_SHOWNOACTIVATE = 4
  4.  
  5.    Global Const GW_CHILD = 5         ' Needed for edit portion of combo box
  6.  
  7.    Type POINTAPI       ' Stores location of cursor
  8.       X As Integer
  9.       Y As Integer
  10.    End Type
  11.  
  12.    Declare Sub GetCursorPos Lib "User" (lpPoint As POINTAPI)
  13.    Declare Function GetActiveWindow Lib "User" () As Integer
  14.   
  15.    Declare Function WindowFromPoint Lib "user" (ByVal lpPointY As Integer, ByVal lpPointX As Integer) As Integer
  16.    Declare Function GetWindow Lib "User" (ByVal hWnd As Integer, ByVal wCmd As Integer) As Integer
  17.    Declare Function ShowWindow Lib "User" (ByVal hWnd As Integer, ByVal nCmdShow As Integer) As Integer
  18.  
  19.   Sub Displayhelp (Help$)
  20.  
  21.       Dim lpPoint As POINTAPI ' Cursor Point variable
  22.       Dim ret As Integer      ' Return value of ShowWindow() API function
  23.  
  24.       Rem Display Help String
  25.       Rem
  26.       Rem This Function displays the Help$ if Help$ <> "".
  27.       Rem if Help$ = "" then the Help String is removed.
  28.       Rem
  29.       Rem FUNCTION REQUIREMENTS:
  30.       Rem     GetCursorPos()    Windows API function
  31.       Rem     frmHelp           Name of the Help form
  32.       Rem
  33.  
  34.       If Len(Help$) <> 0 Then  ' Double check help$
  35.  
  36.          ' Make sure help form is invisible:
  37.          frmHelp.Hide
  38.  
  39.          ' Change caption of label:
  40.  
  41.          frmHelp.Label1.Caption = Help$
  42.  
  43.          ' Get the cursor position so you can calculate where to place the
  44.          ' help form:
  45.          Call GetCursorPos(lpPoint)
  46.  
  47.          ' Offset the form from the cursor by 18 and 2 pixels (values
  48.          ' chosen to simulate the look of Microsoft Word version 6.0)
  49.          frmHelp.Top = (lpPoint.Y + 18) * Screen.TwipsPerPixelY
  50.          frmHelp.Left = (lpPoint.X - 2) * Screen.TwipsPerPixelY
  51.  
  52.          ' Adjust width of form to label + 4  because 2 are needed for each
  53.          ' pixel of the border and 2 are needed to center the label (the
  54.          ' label is inset by 1 pixel on the form). Also, adjust height of
  55.  
  56.          ' form to height of label + 2 because 2 ar needed for each pixel
  57.          ' of the border:
  58.          frmHelp.Width = frmHelp.Label1.Width + (4 * Screen.TwipsPerPixelX)
  59.          frmHelp.Height = frmHelp.Label1.Height + 2 * Screen.TwipsPerPixelY
  60.  
  61.          ' Make sure form is on top:
  62.          frmHelp.ZOrder
  63.  
  64.          ' Show form without the focus:
  65.          ret = ShowWindow(frmHelp.hWnd, SW_SHOWNOACTIVATE)
  66.       Else
  67.          ' Hide the form:
  68.          frmHelp.Hide
  69.       End If
  70. End Sub
  71.  
  72.